package com.example.lean;

import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.WindowManager;
import android.widget.MediaController;
import android.widget.VideoView;

import androidx.appcompat.app.AppCompatActivity;

public class VideoActivity extends AppCompatActivity {
    private static final String TAG = "VideoActivity";

    VideoView vdv;  //用来引用 VideoView 对象
    int pos = 0;    //用来记录前次的播放位置

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        Log.i(TAG, "onCreate: ");
        super.onCreate(savedInstanceState);

        //隐藏系统的状态栏
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
        //隐藏标题栏
        getSupportActionBar().hide();

        setContentView(R.layout.activity_video);
        //保持屏幕一直开着 (不要自动休眠)
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

        //获取传入的 Intent 对象,取出要播放视频的 Uri
        Intent it = getIntent();
        Uri uri = Uri.parse(it.getStringExtra("uri"));
        if(savedInstanceState != null) {
            //如果是因旋转而重新启动 Activity,取出旋转前所存储的播放位置
            pos = savedInstanceState.getInt("pos", 0);
        }

        vdv = findViewById(R.id.videoView); //引用到画面中的 VideoView 组件
        MediaController mediaCtrl = new MediaController(this); //创建播放控制对象
        vdv.setMediaController(mediaCtrl);  //设置要用播放控制对象来控制播放
        vdv.setVideoURI(uri);   //设置要播放视频的 Uri
    }

    @Override
    protected void onResume() {
        Log.i(TAG, "onResume: ");
        super.onResume();
        //当 Activity 启动、或由暂停状态回到互动状态时
        vdv.seekTo(pos);   //移到 pos 的播放位置
        vdv.start();       //开始播放
    }

    @Override
    protected void onPause() {
        Log.i(TAG, "onPause: ");
        super.onPause();
        //当 Activity 进入暂停状态时 (例如切换到其他程序)
        pos = vdv.getCurrentPosition(); //存储播放位置
        vdv.stopPlayback();    //停止播放
    }

    @Override
    protected void onSaveInstanceState(Bundle outState) {
        Log.i(TAG, "onSaveInstanceState: ");
        super.onSaveInstanceState(outState);
        //将暂停时所获取的当前播放位置存储起来
        outState.putInt("pos", pos);
    }
}